package demo1;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Home-pc
 * Date: 2023-08-20
 * Time: 20:54
 */
public class Test {
    //设置花色,用于初始化所有牌
    private static final String[] SUITS={"♥","♠","♣","♦"};

    //初始化所有牌
    public static List<Card> buyCard(){
        List<Card> cards =new ArrayList<>();
        for (int i = 0; i <SUITS.length ; i++) {
            for (int j = 1; j <=13; j++) {
                Card card=new Card(SUITS[i],j );
                cards.add(card);
            }
        }
        return cards;
    }

    //洗牌  从最后一张牌开始到倒数第二张牌，随机的与前面的某一张牌交换
    public static void shuffle(List<Card> cards){
        Random random =new Random();//new了一个用于产生随机数的对象
        for (int i =cards.size()-1; i>0 ; i--) {
            int j=random.nextInt(i);//产生[0,i)之间的随机数
            Card temp=cards.get(i);
            cards.set(i,cards.get(j));
            cards.set(j,temp);
        }
    }

    public static void main(String[] args) {
        List<Card> cards =buyCard();
        System.out.println(cards);
        shuffle(cards);
        System.out.println(cards);

        //3个人，每个人轮流揭5张牌
        //每个人最后会得到5张牌,我们用hand1，hand2，hand3来存储每个人的5张牌
        //怎么用来表示每个人呢，这里我们用hand表示，在hand顺序表中，每个元素都是一个人
        //而每个人都有一个顺序表hand1（2，或者3）

        List<Card> hand1=new ArrayList<>();
        List<Card> hand2=new ArrayList<>();
        List<Card> hand3=new ArrayList<>();

        List<List<Card>> hand=new ArrayList<>();

        //将hand1，hand2，hand3添加到hand顺序表中
        hand.add(hand1);
        hand.add(hand2);
        hand.add(hand3);
        //发牌
        for (int i = 0; i <5; i++) {
            for (int j = 0; j <3; j++) {
                //拿走最上面的一张牌
                Card card=cards.remove(0);
                hand.get(j).add(card);
            }
        }
        System.out.println("第1个人得到的牌");
        System.out.println(hand1);
        System.out.println("第2个人得到的牌");
        System.out.println(hand2);
        System.out.println("第3个人得到的牌");
        System.out.println(hand3);
        System.out.println("剩余的牌");
        System.out.println(cards);

    }

}
